<?php

class Admin_ProdutoController extends Zend_Controller_Action {
	
	public $produtoMapper = null;
	
	public function init() {
		$this->_helper->layout ()->setLayout ( "admin" );
		
		$this->produtoMapper = new Application_Model_ProdutoMapper ();
		
		if ( !Zend_Auth::getInstance()->hasIdentity() ) {
			return $this->_helper->redirector->goToRoute( array('module'=>'admin', 'controller' => 'auth'), null, true);
		}
	}
	
	public function indexAction() {
		$this->view->title = "Lista de produtos";		
		$lista = $this->produtoMapper->listarTodosProdutos ();
		$this->view->lista = $lista;
	}
	
	public function novoProdutoAction() {
		$form = new Application_Form_NovoProduto ();
		$this->view->form = $form;
	}
	
	public function salvarAction() {
		$adapter = new Zend_File_Transfer_Adapter_Http ();
		$adapter->setDestination ( "images/produtos" );
		$adapter->receive ();
		
		$param = $this->getRequest ()->getParams ();
		
		$produto = new Application_Model_Produto ();
		
		$produto->setIdProduto ( NULL );
		$produto->setNome ( $param ["nome"] );
		$produto->setDescricao ( $param ["descricao"] );
		$produto->setPreco ( $param ["preco"] );
		$produto->setImagem ( $adapter->getFileName () );
		$produto->setIdCategoria ( $param ["categorias"] );
		
		$result = $this->produtoMapper->cadastrarNovoProduto ( $produto );
		
		if ($result != NULL) {
			$this->view->msg = "Registro salvo com sucesso!";
		} else {
			$this->view->msg = "Registro nao foi realizado! Caso o erro persita entre em contato com a assistencia e informe o codigo abaixo.<br /> " . $result;
		}
	
	}
	
	public function excluirAction() {
		$this->view->title = "Exclusao de registro";
		$idProduto = $this->getRequest ()->getUserParam ( "id" );
		
		$result = $this->produtoMapper->excluir ( $idProduto );
	}
	
	public function atualizarProdutoAction() {
		$this->view->title = "Editando produto";
		
		$idProduto = $this->getRequest ()->getParam ( "id" );
		
		$produto = $this->produtoMapper->buscarPeloId ( $idProduto );
		
		$dados = $produto [0];
		
		$form = new Application_Form_EditarProduto ();
		
		$form->populate ( $dados );
		
		$this->view->form = $form;
		
		$this->view->foto = $dados ["imagem"];
	}
	
	public function salvarEdicaoAction() {
		$this->view->title = "Atualizacao de produto";
		
		$produtoModel = new Application_Model_Produto();
		
		// definindo destino da imagem
		$adapter = new Zend_File_Transfer_Adapter_Http ();
		$adapter->setDestination ( "images/categorias" );
		
		// transferindo a imagem
		$adapter->receive ();
		
		// pegando parametros passados pelo form
		$params = $this->getRequest ()->getParams ();
		
		$caminhoImagem = $adapter->getFileName ();
		
		$produtoModel->setIdProduto($params["id_produto"]);
		$produtoModel->setNome($params["nome"]);
		$produtoModel->setDescricao($params["descricao"]);
		$produtoModel->setPreco($params["preco"]);
		
		$resultado = $this->produtoMapper->atualizar($produtoModel);
		
		if ($resultado == NULL) {
			$this->view->msg = "Registro nao foi salvo! Caso esse erro persista, entre em contato";
		} else {
			$this->view->msg = "Registro salvo com sucesso!";
		}
	
	}
	
	public function editarImagemAction()
	{
		$this->view->title = "Alterando imagem";
	
		$form = new Application_Form_ImagemProduto();
		 
		$idProduto = $this->getRequest()->getParam("id");
		 
		$form->setDefault("id_produto", $idProduto);
		 
		$this->view->form = $form;
	
	}
	

}











